package org.cytoscape.myapp.cytoscape_app_v1.internal.grupos.criterios;

import java.util.List;
import java.util.Vector;

import org.cytoscape.myapp.cytoscape_app_v1.internal.grupos.FactoryInterface;
import org.cytoscape.myapp.cytoscape_app_v1.internal.grupos.NodeAttribute;
import org.cytoscape.myapp.cytoscape_app_v1.internal.grupos.comparadores.Comparador;

public abstract class Criterio {

	static int valordefecto; //variable que solo se usa hasta que luis nos de el ok con el conjunto 
	protected Comparador comparador;
	private String nombre;
	private FactoryInterface constructorComp;
	
	public Criterio(Comparador comparador, String nombre, FactoryInterface constructorComp){
		
		this.comparador = comparador;
		this.nombre = nombre;
		this.constructorComp = constructorComp; 
	}
	
	public abstract int esValido(List<Object> nodeList);
	
	public List<NodeAttribute> convertNodeListAttributes(List<Object> listNode){
		List<NodeAttribute> attr = new Vector<NodeAttribute>();
		for(Object value:listNode){
			attr.add(this.constructorComp.CreateAttribute(value));
		}
		return attr;
	}
	public int sizeComparador(){
		return this.comparador.size();
	}
	
	public Comparador getComparador(){
		return comparador;
	}
	
	public String getNombre(){
		return this.nombre;
	}
	
}
